The invention relates generally to telephone call centers and more particularly to providing call center agents with the ability to handle multiple calls independent of the type of telephone set deployed at their workstations and to provide applications external to an automatic call distributor with the ability to queue calls without a practical limit on the number of calls queued.
A typical call center includes a number of agents who field inbound telephone calls and place outbound telephone calls. The agent may place outbound sales calls or field inbound calls (such as 800 numbers) from potential customers. The agents are organized into groups, known as Skill/Split Hunt Groups.
A conventional call center typically comprises either an Automatic Call Distributor (ACD) or Personal Branch Exchange (PBX) which receives incoming calls through a Public Switched Telephone Network (PSTN) and routes the calls to a group of ACD agents having like skills, also known as an ACD Skill/Split Hunt Group, rather than to a specific agent. An ACD typically contains a superset of the functions provided by a PBX. Specialized telephones, known as ACD/PBX feature phones, interface with a specific manufacturer""s ACD/PBX and provide the agents with an array of advanced telephony functions. ACD/PBX feature phones typically have configurable buttons for handling multiple calls. ACD/PBX feature phones often provide agents with the ability to handle multiple calls on a single telephone line, known as xe2x80x9cmultiple call appearances.xe2x80x9d ACD/PBX feature phones may also provide agents with the ability to handle calls from multiple telephone lines on a single telephone instrument, known as xe2x80x9cmultiple line appearances.xe2x80x9d Generally, if an agent only requires the ability to juggle multiple calls, he will have multiple call appearance buttons on his ACD/PBX feature phone. If the agent requires different phone lines for different business functions, then the agent will have on his ACD/PBX feature phone. An ACD/PBX feature phone may provide functions for both multiple call and line appearances.
In recent years, call center telephony has begun moving from proprietary ACD/PBX feature phones designed for a specific ACD/PBX to software-controlled telephony applications (Softphones) that can either co-exist with a proprietary ACD/PBX feature phone or can utilize telephone sets not necessarily designed for any particular ACD/PBX. A call center equipped with ACD/PBX proprietary feature phones typically costs three to four times as much as a call center equipped with Softphones associated with a non-proprietary phone. A conventional ACD/PBX call center requires not only a proprietary ACD/PBX feature phone, but also requires ACD/PBX interface line cards utilizing a proprietary protocol. Softphones provide a less expensive means for attaining many of the capabilities of an ACD/PBX feature phone while using only software in combination with a xe2x80x9cplain-old-telephone setxe2x80x9d (POTS) and an associated and less expensive line card. A Softphone call center equipped with POTSs is considerably less expensive to establish and to maintain with the latest upgrades than a call center configured with ACD/PBX feature phones. A Softphone has the added advantage that persons who are not permanent call center agents may be provisioned with call center telephone capabilities without the need for an expensive upgrade to an ACD/PBX feature phone. This feature may be especially attractive for seasonal businesses. Additionally, if a business replaces its ACD/PBX for a different manufacturer""s model, it is likely that this business can retain their Softphone applications without modification.
The software-controlled application that drives a Softphone call center generally provides the agent with a graphical user interface (GUI) that replaces the function control buttons on an ACD/PBX feature phone used by the agent to control telephony functions. While interacting with a caller over the Softphone, the agent uses hot keys or an electronic mouse to select telephony functions on a workstation screen. A hot key is a keystroke or combination of keystrokes that sends a command to the computing system that provides the Softphone capability. Softphone telephony features emulate the feature buttons on an ACD/PBX feature phone and are supported via a Computer-Telephony Integration (CTI) link to the ACD or PBX. The CTI link allows the Softphone system to control telephone call handling operations in the ACD/PBX such as answering a call, making a call, transferring a call, and making a conference call, by sending requests and receiving event messages over the CTI link. An event message is an action or occurrence to which the Softphone may respond. Software client/server CTI Middleware products interface to the ACD/PBX proprietary CTI link and simplify the application programming interface (API) needed by the Softphone to communicate with the ACD/PBX.
FIG. 1 illustrates a conventional Softphone-configured call center. In this Softphone call center, an ACD 102 interfaces between client telephone calls 100 and agents 108a at an agent workstation 108. The clients typically place telephone calls to the agents 108a via a Public Switched Telephone Network (PSTN). When a client telephone call 100 arrives at the ACD 102, the call is received by an ACD route point 103. PSTN calls are generally forwarded to a group of ACD agents 108a having like skills (the ACD Skill/Split Hunt Group) rather than to a specific one of the agents. The ACD 102 routes incoming calls through the ACD route point 103 which typically comprises a phone number in the numbering plan of the ACD 102 that works in conjunction with a call handling instructions script, referred to as a routing program 104. An ACD object 105 controls the routing program 104 to enable customized call processing specifications in the ACD 102. The routing program 104 tells the ACD""s call processing software how to treat the client""s call 100. The routing program 104 typically includes at least one announcement and at least one queue statement. The queue statement directs the call to a specific ACD Skill/Split Hunt Group 106. The ACD Skill/Split Hunt Group 106 has a single phone number, a Pilot Directory Number (Pilot DN) 107 that subsequently directs the client telephone call directly to one of the available agents 108a within the ACD Skill/Split Hunt Group 106.
As shown in FIG. 1, the ACD 102 may have multiple route points 103, multiple routing programs 104, multiple ACD objects 105, and multiple ACD Skill/Split Hunt Groups 106. The discussion provided herein generally refers to a single set of ACD elements for ease of understanding, as the operations of multiple ACD elements may be extrapolated from the description of the operation of a single set of such elements.
Each agent workstation 108 has a telephone that receives calls directed to either of two numbers. The first number is the phone number for the telephone instrument itself at the agent workstation 108, or the Phone Directory Number (Phone DN). The second number is a phone number corresponding to the agent 108a, i.e., an Agent Directory Number (Agent DN). The Agent DN follows an individual call center agent. Thus, the agent 108a may switch from one agent workstation 108 to another agent workstation 108 and still retain the same Agent DN. If the agent 108a is not working on a particular day, or has not otherwise logged into the call center, then the Agent DN will not be active, and a party calling the Agent DN will receive a message to this effect.
A Call Control application server 110 communicates with the ACD 102 through a Computer Telephony Integration (CTI) link 109. The Call Control application server 110 comprises a standard computing system, such as a PC, and a CTI server application which processes calling information for various agents 108a via their associated Softphone applications 111. Each agent 108a typically has a terminal that provides a graphical user interface to the Softphone application 111. The Softphone application 111 emulates many of the button functions of an ACD/PBX feature phone. For example, an agent 108a places a call on hold by using a hot key on the application 111. Engaging the hot key causes the application 111 to send a command through the CTI link 109 to direct the ACD 102 to place the call in a holding state. Most CTI links support call hold of a single call, even in a Softphone system.
The Call Control application server 110 synchronizes the Softphone application 111 with the ACD 102 by sending event messages to the Softphone application 111 pertaining to the set of Agent DNs and Phone DNs that have been provided with the Softphone capability. The Call Control application server 110 services telephony commands from the Softphone application 111 to provide the agent 108a with a Softphone. In a typical configuration, each agent 108a has access to an individual copy of the Softphone application 111 at his or her workstation 108. The Softphone application 111 servicing each agent workstation 108 may be run from the Call Control application server 110, for example, in an internet browser-based implementation. The combination of the agent workstation 108 utilizing a POTS and the Softphone application 111 provides the agent 108a with many of the features available on more expensive ACD/PBX feature phones.
In a Softphone-equipped call center, such as the call center shown in FIG. 1, a client call 100 may reach an individual agent 108a in several different ways. The client call 100 may reach the agent 108a through the ACD route point 103. This method of calling does not necessarily reach a specific agent 108a but instead reaches any available agent 108a in the ACD Skill/Split Hunt Group 106. This method provides general calling but is unsuitable for reaching a specific one of the agents 108a. A client call 100 may reach a specific agent 108a by placing a phone call to the Phone DN at the agent""s workstation 108. This method directs the call to a specific telephone instrument, whether the agent 108a is present or not. This method is often unfruitful for contacting a specific agent 108a because the agent may have moved to another workstation 108, may be busy on another call, or may not otherwise be available. As more than one agent frequently occupies the same physical workstation associated with a Phone DN, call center management may also prefer that incoming calls not be routed through the Phone DN to avoid slowing the productivity of other call center agents who may answer calls directed to their Phone DNs that were intended for the call center agent who previously occupied that particular Phone DN. In another approach, the client call 100 reaches the agent 108a by using the Agent DN. This method allows the call to follow the agent 108a to the actual telephone instrument presently being used by the agent. The Agent DN constitutes a personal phone number for the agent 108a and returns a busy signal if the agent 108a is not logged into the ACD 102. The Agent DN connects the call to the agent 108a if the agent is available when the call arrives. If the agent 108a is busy on another call, the caller hears a ringback tone until the agent is free. The ACD 102 typically generates an audible prompt which the agent 108a hears while on the other call. The agent 108a only hears the audible prompt when a call arrives at the workstation 108 from the Agent DN or the Phone DN. If no agent 108a is available in the ACD Skill/Split Hunt Group 106 when a call arrives, the ACD 102 simply queues the call, and the agent 108a hears nothing (because the call is not actually waiting for any particular agent). In some call centers, the ACD 102 may direct a light to flash at the agent workstation 108 when a call arrives through an Agent DN. The typical CTI link 109 does not provide an event message notifying a CTI-enabled application, such as the Softphone application 111, about the waiting call.
Not all of the features provided in a call center equipped with ACD/PBX feature phones are available in a Softphone call center. For example, call center agents frequently need to handle multiple telephone calls at the same time, such as when an incoming call is directed to their Agent DN while the agent is already speaking with another caller, as discussed above. In addition, call center agents associated with a predictive dialer blending configuration need to park an outbound call associated with the predictive dialer in order for the agent to receive inbound calls. Using an ACD/PBX feature phone, a call center agent may handle multiple calls by creating a queue of calls that the agent may then selectively retrieve. A conventional ACD/PBX feature phone enables multiple call handling for an agent by providing Call Park and Call Pickup functions. Call Park provides an agent with the ability to park a call at a unique parking address, freeing the agent to take other inbound calls waiting in the ACD, make outbound calls, and perform other telephony operations. Call Pickup allows the agent to retrieve a specific call from its unique parking address and then resume the original phone conversation. For some ACDs using ACD/PBX feature phones, the agent can park only one call. For other ACDs, the agent may park a limited number of multiple calls. Depending on the ACD design, these calls may be either in a First-In First-Out (FIFO) queue of parked calls or they each may be at a unique parking address in a queue of parked calls. While parked, a caller typically hears either music, silence, or an appropriate message. Call Hold, another telephony feature, differs from Call Park in that Call Hold only allows an agent to place one phone call in a temporary state. When a caller is placed on hold, no calls waiting in the ACD are routed to the agent, and the agent may only make outgoing calls.
Softphone call centers presently have no capability for providing flexible, multiple call handling and queuing operations in a manner independent of the telephone instrument deployed in the call center. For example, the Lucent(copyright) Definity G3 ACD allows for one parked call, while the Northern Telecom Meridian ACD provides no Call Park facility via the proprietary ACD CTI link. Also, most Softphone applications are written in reliance upon third party CTI Middleware which serves as a higher level programming language access to the proprietary CTI link. The CTI Middleware generally do not provide for Call Park/Pickup. IBM CallPath, Dialogic CT-Connect and Genesys T-Server are exemplary CTI Middleware products. For this reason, existing Softphone call centers generally do not support the Call Park and Call Pickup functions provided by ACD/PBX feature phone installations. While Call Park and Call Pickup are useful call center features, they are also not typically supported by the CTI link. These features are also not typically supported by third party CTI Middleware, and if supported at all, support only one call per the aforementioned ACD limitation. Thus, even if the ACD/PBX deployed in a call center supports call queuing, call center agents may not be able to use Call Park and Call Pickup because the CTI link or third party CTI Middleware used by their call center does not support these features.
A Softphone application""s requirements resemble those of a robotic call processing application. The primary difference is that the Softphone manages calls arriving at a specific Phone DN while a robotic application manages calls arriving at a specific route point DN. FIG. 2 shows a robotic application 211 communicating with the route point 103. The robotic application 211 may communicate with both the route point 103, the ACD Skill/Split Hunt Group 106, and the Agent DN and the Phone DN at the agent""s workstation 108. Some robotic applications 211 may receive information from callers 100 and may, in some instances, handle a call in a manner much like that of a call center agent 108a. As robotic technologies grow more sophisticated, robotic applications, such as robot application 211 , may even begin replacing many, or in some instances all call center agents 108a, and may also replace many ACD capabilities such as those provided by routing programs 104 and ACD Skill/Split Hunt Group 106. Robotic application 211 can therefore be considered a robotic call center agent having many similar needs to a human call center agent or as a robotic application that replaces many of the aforementioned ACD capabilities. The robotic application 211 may need to park calls and then route them to other agents or to other robotic resources such as an Interactive Voice Response (IVR) or voice mail. Accordingly, robotic applications have a need for similar Call Park/Call Pickup functions to those of a human call center agent. In many instances, robotic applications require capabilities beyond those required by human call center agents, such as handling many more calls than would a human agent. In other words, the robotic application 211 requires the capability to queue calls such that a specific call can be removed out of its order of arrival in comparison to the other queued calls and distributed to a call center resource. A call center resource can be either a call center agent or a call center robotic agent such as an IVR application or a voice mail application. For example, suppose a call arrives from a very high-valued caller 100 and the call needs to be queued in the ACD 102 to wait for an agent 108a with a specific set of skills to support this customer. Another example is that of a high value call that arrives at the ACD 102 and is delivered to an agent 108a ahead of previously queued calls because the call is associated with a high-valued customer, causing the other calls to continue waiting in a queue for service. A robotic application that supports such capabilities is popularly called xe2x80x9cskills based routingxe2x80x9d when agent skills are involved and xe2x80x9chost based routingxe2x80x9d when agent skills are not a criterion. Essentially, the same ACD limitations that thwart Call Park in Softphone applications also prevent robotic applications from providing high-value call distribution capabilities such as skills based routing. These limitations also prevent third parties from building high-value ACD call distribution functionality outside of the ACD without resorting to some form of adjunct hardware solution. Without a capability to queue a large number of calls and retrieve the calls in any order, a third party call routing application must essentially allow the ACD to retain control over the distribution of queued calls.
The invention provides a method and system for allowing a call center agent to queue with no practical limit a number of telephone calls indefinitely in a call center, regardless of the type of telephone instrument deployed in the call center. The invention also provides a method and system for allowing a call center robotic application to queue a virtually unlimited number of telephone calls indefinitely in a call center associated with an ACD route point. In the invention, a multiple-call handling (MCH) application in the Call Control application server utilizes one or more call route points within the ACD/PBX to queue agent-selected calls or robotic application-selected calls. When an agent, or robot application, indicates that a call should be queued, the MCH application in the Call Control application server instructs the ACD/PBX to transfer the call to a route point, which effectively provides a queue. If the ACD/PBX has a default routing timeout period for unassigned calls, then the MCH application instructs the ACD/PBX to transfer the queued call to a second route point in the ACD/PBX before the default routing occurs. If another default routing time period nears expiration while the call is still queued, then the MCH application in the Call Control application server instructs the ACD/PBX to transfer the call back to the first route point. The MCH application maintains a database of queued call records for locating specific queued calls, such as when an agent (or robot application) wishes to retrieve a queued call. The process of juggling a call from route point to route point may be continued indefinitely, although the invention further permits the setting of a maximum queuing period. Juggling calls from one route point to another avoids the default timeout mechanism for unassigned calls in many ACD/PBXs as well as limitations in the number of calls that can be queued at a route point.